package com.info.zhiduoduo.core.service;

import com.info.zhiduoduo.common.constants.SmartResult;

import javax.servlet.http.HttpServletRequest;
import java.util.Date;

public interface CommonService {

	/**
	 * 发送短信验证码给指定手机号
	 *
	 * @param httpServletRequest
	 * @param phone
	 * @return
	 */
	SmartResult sendPhoneVerifyCode(HttpServletRequest httpServletRequest, String phone);

	/**
	 * 发送生日短信
	 * @param phone
	 * @return
	 */
	void sendBirthSms(String phone);

	/**
	 * 发送纪念日短信
	 * @param phone
	 * @param year	第几个纪念日
	 * @return
	 */
	void sendAnniversarySms(String phone, String year);

	/**
	 * 检验前端传过来的验证码是否匹配系统数据库的验证码
	 *
	 * @param phone      手机号
	 * @param verifyCode 待匹配的验证码
	 * @return 结果为null，则验证码正确。如果不为null，则returnvalue包含了错误信息。
	 */
	void checkPhoneVerifyCode(String phone, String verifyCode);

	/**
	 * 合伙人或企业审核通过,调用crm,发送企业微信通知给商务经理
	 *
	 * @param businessManagerId zdd商务经理ID
	 * @param name              名称(合伙人或企业名称)
	 * @param type              类型：1.合伙人，2.企业
	 * @return
	 */
	SmartResult sendEnterpriseWeChatNotice(int businessManagerId, String name, int type);
	/**
	 * 企业自动冻结,调用crm,发送企业微信通知给商务经理
	 *
	 * @param businessManagerId zdd商务经理ID
	 * @param name              名称(企业名称)
	 * @return
	 */
	SmartResult enterpriseAutomaticFreezing(int businessManagerId, String name);

	/**
	 * 调用crm,发送企业微信通知给商务经理
	 *
	 * @param businessManagerId zdd商务经理ID
	 * @param name              名称(合伙人或企业名称)
	 * @param type              如果是发给商务的话type：1，id,跟内容info;如果是发送给指定的人就是type = 2 和那个人的中文名称
	 * @return
	 */
	SmartResult sendEnterpriseWeChatNotice(int businessManagerId, String name, int type, String info);

	/**
	 * 验证银行卡信息
	 *
	 * @param cardNo
	 * @return
	 */
	SmartResult validateCardInfo(String cardNo);

	/**
	 * 验证是否在限制交易时间段
	 * @param time
	 * @return 是：true
	 */
	void validRestraintTradeTime(Date time);
}
